<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>sort 排序</title>
</head>
<body>
    
    <script type="text/javascript">
        'use strict';
        // 1. Array的sort()方法默认把所有元素先转换为String再排序
        console.log([10,20,1,2].sort());  // [1, 10, 2, 20]  结果'10'排在了'2'的前面，因为字符'1'比字符'2'的ASCII码小
        
        var arr1 = [10,20,1,2];
        var arr1_cpy = [];
        arr1_cpy = arr1.sort(function(x,y){
            if(x<y){
                return -1;
            }
            if (x>y) {
                return 1;
            }
            return 0;
        });
        console.log(arr1_cpy);

        // 2. 默认情况下，对字符串排序，是按照ASCII的大小比较的，现在，我们提出排序应该忽略大小写，
        //    按照字母序排序。要实现这个算法，不必对现有代码大加改动，只要我们能定义出忽略大小写的比较算法就可以：
        var arr2 = ['Google','Microsoft','apple'];
        var result = arr2.sort(function(s1,s2){
            var x1 = s1.toUpperCase();
            var x2 = s2.toUpperCase();
            if(x1 < x2)
                return -1;
            if(x1 > x2)
                return 1;
            return 0;
        });
        console.log(result);

        // 3. sort()方法会直接对Array进行修改，它返回的结果仍是当前Array
        var a1 = ['B','A','C'];
        var a2 = a1.sort();
        console.log(a1);  // ['A', 'B', 'C']
        console.log(a2);  // ['A', 'B', 'C']
        console.log(a1 === a2);  // true
        
        
    </script>
</body>
</html>